﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace SCS.Core.Models.Collection
{
    public class CreateCampaignCollection
    {
        ///CampaignDetail
        [Required(ErrorMessage = "Please enter Title of Campaign.")]
        [DisplayName("Title")]
        [StringLength(200)]
        public string Name_CampaignDetail { get; set; }

        [DisplayName("Status")]
        public byte? Status_CampaignDetail { get; set; }

        [DisplayName("ConfigID")]
        public int? ConfigID_CampaignDetail { get; set; }

        [DisplayName("Description")]
        public string Description_CampaignDetail { get; set; }

        [DisplayName("UserCreate")]
        public int? UserCreate_CampaignDetail { get; set; }

        [DisplayName("Deploy")]
        public bool? Deploy_CampaignDetail { get; set; }

        [DisplayName("ScheduleID")]
        public int? ScheduleID_CampaignDetail { get; set; }

        [DisplayName("Content")]
        public string Content_CampaignDetail { get; set; }


        //[Required(ErrorMessage = "Please choose Client Staff receive emailCC from Campaign.")]
        [DisplayName("ArrayStaffClientID")]
        public string ArrayStaffClientID { get; set; }

        //[Required(ErrorMessage = "Please choose APlink Staff receive emailCC from Campaign.")]
        [DisplayName("ArrayStaffAplinkID")]
        public string ArrayStaffAplinkID { get; set; }

        [Required(ErrorMessage = "Please choose client for Campaign.")]
        [DisplayName("ClientID")]
        public int? ClientID_CampaignDetail { get; set; }

        [DisplayName("CampaignID")]
        public int? CampaignID__CampaignDetail { get; set; }
        
        ///End CampaignDetail
        
        
        ///MailSettingDetail

        [Required(ErrorMessage = "Please Server.")]
        [DisplayName("SMTPServer")]
        [StringLength(250)]
        public string SMTPServer_MailSettingDetail { get; set; }

        //[Required(ErrorMessage = "Please enter UserName(email address).")]
        [DisplayName("UserName")]
        [StringLength(100)]
        public string UserName_MailSettingDetail { get; set; }

        //[Required(ErrorMessage = "Please enter Password(email password).")]
        [DisplayName("Password")]
        [StringLength(100)]
        public string Password_MailSettingDetail { get; set; }

       // [Required(ErrorMessage = "Please enter Port(smtp port).")]
        [DisplayName("SMTPPort")]
        [StringLength(50)]
        public string SMTPPort_MailSettingDetail { get; set; }

        [DisplayName("MailboxStatus")]
        public byte? MailboxStatus_MailSettingDetail { get; set; }

        [DisplayName("SendInterval")]
        public long? SendInterval_MailSettingDetail { get; set; }

        [DisplayName("POP3Port")]
        [StringLength(50)]
        public string POP3Port_MailSettingDetail { get; set; }

        [DisplayName("ConfigID")]
        public int? ConfigID_MailSettingDetail { get; set; }

        ///End Mail Setting Detail

        /// AttachFileDetail
        [DisplayName("FileExtend")]
        [StringLength(50)]
        public string FileExtend_AttachFileDetail { get; set; }

        [Required(ErrorMessage = "Please Location file path.")]
        [DisplayName("Location")]
        [StringLength(200)]
        public string Location_AttachFileDetail { get; set; }

        [DisplayName("Status")]
        public byte? Status_AttachFileDetail { get; set; }

        [DisplayName("TypeMail")]
        public bool? TypeMail_AttachFileDetail { get; set; }

        [DisplayName("FileName")]
        [StringLength(150)]
        public string FileName_AttachFileDetail { get; set; }

        [DisplayName("TypeAttach")]
        public byte? TypeAttach_AttachFileDetail { get; set; }

        [DisplayName("CampaignID")]
        public int? CampaignID_AttachFileDetail { get; set; }

        [DisplayName("AttachID")]
        public int? AttachID_AttachFileDetail { get; set; }

        [DisplayName("ArrAttachID")]
        public string ArrAttachID { get; set; }

        [DisplayName("LocationFilesReport")]
        [StringLength(350)]
        public string LocationFilesReport_AttachFileDetail { get; set; }

        [DisplayName("ArrAttachIDRemove")]
        public string ArrAttachIDRemove { get; set; }

        public bool DeleteAttachFile1 { get; set; }
        public bool DeleteAttachFile2 { get; set; }
        public bool DeleteAttachFile3 { get; set; }
        ///End Attach File Detail

        ///TemplateDetail
        //[Required(ErrorMessage = "Please enter Name Template.")]
        [DisplayName("Name")]
        [StringLength(100)]
        public string Name_TemplateDetail { get; set; }

        //[Required(ErrorMessage = "Please enter Content Tempalte.")]
        [DisplayName("Content")]
        public string Content_TemplateDetail { get; set; }

        [DisplayName("Status")]
        public byte? Status_TemplateDetail { get; set; }

        [DisplayName("UserCreate")]
        public int? UserCreate_TemplateDetail { get; set; }

        [DisplayName("Deploy")]
        public bool? Deploy_TemplateDetail { get; set; }

        [DisplayName("DateCreate")]
        public DateTime? DateCreate_TemplateDetail { get; set; }

        [DisplayName("TempID")]
        public int? TempID_TemplateDetail { get; set; }

        //[Required(ErrorMessage = "Please Apply Template")]
        [DisplayName("Content")]
        public string Content_TemplateDetailValueINOUT { get; set; }
        ///End Template Detail


        ///Customer Detail
        [DisplayName("CustomerName")]
        [StringLength(100)]
        public string CustomerName_CustomerDetail { get; set; }

        [DisplayName("Address")]
        public byte? Address_CustomerDetail { get; set; }

        [DisplayName("Phone")]
        public string Phone_CustomerDetail { get; set; }

        [DisplayName("Mobile")]
        public string Mobile_CustomerDetail { get; set; }

        [DisplayName("Status")]
        public byte? Status_CustomerDetail { get; set; }

        [DisplayName("CountryID")]
        public int? CountryID_CustomerDetail { get; set; }

        [DisplayName("CustomerCampaignID")]
        public int? CustomerCampaignID_CustomerDetail { get; set; }

        [DisplayName("TypeCustomerID")]
        public int? TypeCustomerID_CustomerDetail { get; set; }

        [DisplayName("ArrCusIDInCampaign")]
        public string ArrCusIDInCampaign { get; set; }

        [DisplayName("Email1")]
        public string Email1_CustomerDetail { get; set; }

        [DisplayName("Email2")]
        public string Email2_CustomerDetail { get; set; }

        [DisplayName("Email3")]
        public string Email3_CustomerDetail { get; set; }

        [DisplayName("ArrTypeCustomerID")]
        public string ArrTypeCustomerID { get; set; }

        [DisplayName("ArrCusIDRemoveFormCampaign")]
        public string ArrCusIDRemoveFormCampaign { get; set; }

        ///End Customer Detail
        
        ///Schedule

        [Required(ErrorMessage = "Please enter ScheduleName.")]
        [DisplayName("ScheduleName")]
        [StringLength(100)]
        public string ScheduleName_ScheduleDetail { get; set; }
        
        [DisplayName("UserName")]
        public int? SendDate_ScheduleDetail { get; set; }

        [DisplayName("SendMonth")]
        public string SendMonth_ScheduleDetail { get; set; }

        [Required(ErrorMessage = "Please enter DateRun.")]
        [DisplayName("DateRun")]
        public DateTime DateRun_ScheduleDetail { get; set; }

        [DisplayName("ScheduleID")]
        public int? ScheduleID_ScheduleDetail { get; set; }

        ///End schedule

    }
}